db.posts.ensureIndex({"loc":"2d"})如果我这样做并通过它查询...单位是什么?db.posts.find({"loc":{"$within":{"$center":[user_center,user_radius]}}})如果我想找到5英里外的东西,我的半径是多少? 最佳答案 你的单位就是你存放在那里的任何东西。如果您将度数存储在地球仪上,则该度数将成为$within的单位。如果您使用度数,则5英里的$within将为~0.07,因为度数为60海里。 关于
我想尽快获得满足给定查询的字段c.h(集合中条目的字段c中包含的子文档的字段h)的所有不同可能值的数量:{p:[a_int],r:[a_bool]}我的第一个想法是索引:{p:1,r:1,"c.h":1}是否正确?distinct会正确使用它吗?我正在使用mongo2.0.1编辑:我在jiraticket上找到您可以获得查询的统计信息。但是,它仅在用于副本集时有效(而不是在分片中从mongos运行时)。该查询似乎至少使用了{p:1,"c.h":1}上的正确索引,因此我将尝试使用完整索引。EDIT2:完整索引按预期工作得更好。 最佳答案
在capped-collection上按反向插入顺序排序的最快方法是什么('rf'已被稀疏索引)db.log.find({rf:'o-5556457634'}).sort({'$natural':-1}).explain();{"cursor":"ReverseCappedCursor","nscanned":1654468,"nscannedObjects":1654468,"n":4,"millis":2932,"nYields":5,"nChunkSkips":0,"isMultiKey":false,"indexOnly":false,"indexBounds":{}}似乎“自
我有一个包含大约1000万条记录的集合。我为大约50,000条记录定义了一个字段key1。现在,如果我想在key1上建立索引,实际上会分配多少空间。我的意思是该索引的数量级是1000万个单位还是50,000个单位。另外,如果键对应的值是不同的类型,mongo如何管理索引。例如。假设我们有key2,我们有1,000条记录存储字符串,而其他1,000条记录存储数组。那么,如果在key2上创建索引,将如何创建索引。我的第一个问题是一个真正的问题,我希望得到解决。第二个只是出于好奇。 最佳答案 我找到了问题的答案。Mongodb支持spar
MongoDB可以将具有不同字段的文档存储在一个集合中。那么索引将如何工作?如果我在没有出现在所有文档中的字段上创建索引,那么没有该字段的文档将不会被索引? 最佳答案 索引中没有该字段的文档将被索引为该字段没有值。您可能想查看此内容:http://docs.mongodb.org/manual/core/indexes/如果不想在索引中包含没有键的文档,可以使用稀疏索引:http://docs.mongodb.org/manual/administration/indexes/#sparse-indexes
根据MongoDB'smanual,在稀疏索引中,只包含包含该字段的对象。我可以看到稀疏索引的大小(以字节为单位),但如何查找它包含多少个对象?我正在对我的对象进行升级,该数字是仍有待处理的数量。更新:我的索引字段是一个整数和一个ObjectId。如果它们在索引中具有固定大小,我可以将其大小(以字节为单位)除以每个索引大小以获得近似值吗?也许当我删除具有该字段的对象时,稀疏索引大小不会在磁盘上缩小... 最佳答案 如果设置了相应的字段,对象将包含在稀疏索引中,即使它是null。因此,您可以使用$exists获取具有值集的元素的数量:
给定文件形状如下:{"some-blob-id":{{"error":"SomeErrorMessage","data":BinaryData(0,all-that-glop),"timestamp":"time-for-completion-or-error"},...}并且希望查询some-blob-id.data的$exists,什么是合适的索引规范?我不希望它在二进制内容上建立索引。 最佳答案 我会在设置数据时将另一个字段设置为1(这很容易回填)。然后在这个新字段上添加一个稀疏索引。这可能是最优化的方法。
在这种情况下预期会有什么行为?mongo会将空数组视为null/undefined并将其包含到稀疏索引中,或者如果数组为空,则不会对文档进行索引? 最佳答案 在MongoDB中,空数组的处理方式与null不同。正如您在Mongoshell的以下代码中看到的那样,稀疏索引将空数组查找为空数组,而不是null。>c=db.docstest.docs>c.insert({a:[]})>c.ensureIndex({a:1},{sparse:true})>c.find({a:[]}).count()1>c.find({a:null}).co
这里是查询:db.posts.find({"project.id":5,"project.sections":6,"reading":0,"publicate":1},{"date":1}).sort({"date":-1}).limit(20)这是它的输出:{"_id":ObjectId("51342351b6f8f38564000001"),"date":ISODate("2013-03-05T12:38:41.731Z")}{"_id":ObjectId("510ff98da80f733357000002"),"date":ISODate("2013-02-04T19:20:25
早上好。我有一些问题。我有这些字段:name:"Mike",city:"NY",address:"something",pets:["dog","cat"]我创建了索引db.person.ensureIndex({name:1})db.person.ensureIndex({city:1})db.person.ensureIndex({address:1})db.person.ensureIndex({pets:1})查询是db.person.find({$and:[{$or:[{name:"Mike"},{city:"CA"}]},{pets:"dog"}]}).explain()而